//#define _CRT_SECURE_NO_WARNINGS 1
//
//#include "list.h"
//
//namespace rtx
//{
//	void Test_arrow()
//	{
//		struct Pos
//		{
//			int _a1;
//			int _a2;
//
//			Pos(int a1 = 0, int a2 = 0)
//				:_a1(a1)
//				, _a2(a2)
//			{}
//		};
//		Pos aa;
//		Pos* p2 = &aa;
//		p2->_a1;
//		p2->_a2;
//
//		list<Pos> lt;
//		lt.push_back(Pos(10, 20));
//		lt.push_back(Pos(10, 21));
//
//		list<Pos>::iterator it = lt.begin();
//		while (it != lt.end())
//		{
//			//cout << (*it)._a1 << "，" << (*it)._a2 << endl;
//			cout << it->_a1 << "，" << it->_a2 << endl;
//		    //实际要写，it->->_a1，但是编译器优化了一个箭头
//			++it;
//		}
//		cout << endl;
//	}
//
//	void print_list(const list<int>& lt) 
//	{
//		list<int>::const_iterator it = lt.begin();
//		while (it != lt.end())
//		{
//			cout << *it << " ";
//			it++;
//		}
//		cout << endl;
//	}
//
//	void Test_push_back()
//	{
//		list<int> lt;
//		lt.push_back(1);
//		lt.push_back(2);
//		lt.push_back(3);
//		lt.push_back(4);
//		lt.push_back(5);
//
//		list<int>::iterator it = lt.begin();
//		print_list(lt);
//
//		for (const auto& e : lt)
//		{
//			cout << e << " ";
//		}
//		cout << endl;
//	}
//
//	void Test_insert()
//	{
//		list<int> lt;
//		lt.push_back(1);
//		lt.push_back(2);
//		lt.push_back(3);
//		lt.push_back(4);
//		lt.push_back(5);
//		//list<int>::iterator pos = find(lt.begin(), lt.end(), 2);// 涉及其它问题，先不这样写
//		//if (pos != lt.end())
//		//{
//		//	lt.insert(pos, 20);
//		//}
//		lt.insert(++lt.begin(), 20);
//		lt.push_front(0);
//		lt.push_front(-1);
//		print_list(lt);
//	}
//
//	void Test_erase()
//	{
//		list<int> lt;
//		lt.push_back(1);
//		lt.push_back(2);
//		lt.push_back(3);
//		lt.push_back(4);
//		lt.push_back(5);
//
//		lt.erase(++++lt.begin());//发现个好玩的，（删除3）
//		lt.pop_back();
//		lt.pop_front();
//		print_list(lt);
//	}
//
//	void Test_copy() 
//	{
//		list<int> lt;
//		lt.push_back(1);
//		lt.push_back(2);
//		lt.push_back(3);
//		lt.push_back(4);
//		lt.push_back(5);
//
//		list<int> lt2(lt);
//		for (auto& e : lt2)
//		{
//			e *= 10;
//		}
//		print_list(lt);
//		print_list(lt2);
//	}
//
//	void Test_reverse_iterator()
//	{
//		list<int> lt;
//		lt.push_back(1);
//		lt.push_back(2);
//		lt.push_back(3);
//		lt.push_back(4);
//		lt.push_back(5);
//
//		list<int>::iterator it = lt.begin();
//		while (it != lt.end())
//		{
//			cout << *it << " ";
//			++it;
//		}
//		cout << endl;
//
//		list<int>::reverse_iterator rit = lt.rbegin();
//		while (rit != lt.rend())
//		{
//			cout << *rit << " ";
//			++rit;
//		}
//		cout << endl;
//	}
//}
//
//int main()
//{
//	//rtx::Test_push_back();
//	//rtx::Test_arrow();
//	//rtx::Test_insert();
//	//rtx::Test_erase();
//	//rtx::Test_copy();
//	rtx::Test_reverse_iterator();
//
//	return 0;
//}

#define _CRT_SECURE_NO_WARNINGS 1

#include "list.h"
#include "vector.h"

namespace rtx
{
	void Test_reverse_iterator()
	{
		list<int> lt;
		lt.push_back(1);
		lt.push_back(2);
		lt.push_back(3);
		lt.push_back(4);
		lt.push_back(5);

		list<int>::iterator it = lt.begin();
		while (it != lt.end())
		{
			cout << *it << " ";
			++it;
		}
		cout << endl;

		list<int>::reverse_iterator rit = lt.rbegin();
		while (rit != lt.rend())
		{
			cout << *rit << " ";
			++rit;
		}
		cout << endl;
	}

	void Test_reverse_iterator2()
	{
		vector<int> lt;//为了方便lt的名字都不改成常用的v了
		lt.push_back(10);
		lt.push_back(20);
		lt.push_back(30);
		lt.push_back(40);
		lt.push_back(50);

		vector<int>::iterator it = lt.begin();
		while (it != lt.end())
		{
			cout << *it << " ";
			++it;
		}
		cout << endl;

		vector<int>::reverse_iterator rit = lt.rbegin();
		while (rit != lt.rend())
		{
			cout << *rit << " ";
			++rit;
		}
		cout << endl;
	}
}

//int main()
//{
//	//rtx::Test_reverse_iterator();
//	rtx::Test_reverse_iterator2();
//
//	return 0;
//}